java 学习记录4

来源:互联网 发布:点卡平台源码 编辑:程序博客网 时间:2024/05/20 00:50



1.面向过程:主要是函数,代码升级性能不好,扩展性不好
  面向对象:结构性强,可升级,扩展性好,是模拟现实生活的代码方式
 C++抽象类 Java纯面向对象

2.对象:描述+功能  变量+方法  属性+行为
 “万事万物皆对象”

3.类:
    New 类名();           造对象;类名大写
    类名 a = new 类名();   a接收新创建类的地址,是一个地址管理者
    属性必须定义在类里面,方法里面定义的变量

class Student{
 //属性 类 方法 静态快 构造器
 //属性声明格式:[特殊符号] 类型 名称
 
 String name;
 String address;
 String sex;  //属性方法必须声明在类里

 void lookbook(){
  System.out.println("嗨喽亲");  //方法
 }
 void net(){
  System.out.println("没有网的亲");
 }
 
 public static void main(String[] args){

  Student s=new Student(); //创建对象
  s.name="lilin";   //访问s; "."属性和方法的访问符
  s.address="xian";
  s.sex="girl";
  s.lookbook();  //调用方法
  s.net();
  System.out.println("s.name");
  System.out.println("s.address");
  System.out.println("s.sex");
 }  

}

4.类的属性和方法为静态属性和方法
  编译时,先加载静态成员,且静态成员只加载一次,程序关闭后才释放内存
  静态成员——类
  实例成员——对象

  static void method(){} //类方法
  void method(){}  //实例(对象)的方法

  静态不能访问非静态(实例);实例成员可访问静态成员
  静态能用类名访问,实例只能用对象访问

  class Room
{
 String name;
 String where;
 String age;
 String grade;

 void go1(){
 System.out.println("7:30 o'clock go class");}
 void go2(){
 System.out.println("8 o'clock go class");
 System.out.println(sex);}

 static void partner(){
 System.out.println("best friend");}
 static String sex;
 static void h(){
 sex="girl";}

 public static void main(String[] args)
 {
  Room r1=new Room();
  Room r2=new Room();
  r1.name="zhang sha ";
  r1.where="chun hua ";
  r1.age="24";
  r1.grade="class 1 ";
  r1.go1();
  r1.partner();
  r1.h();
  System.out.println(r1.name);
  System.out.println(r1.age);
  System.out.println(r1.where);
  System.out.println(r1.grade);
  System.out.println("---------------------------------");

  r2.name="he jun  ";
  r2.where="chang  an  ";
  r2.age="22";
  r2.grade="class 2 ";
  r2.go2();
  r2.partner();
  
  System.out.println(r2.name);
  System.out.println(r2.age);
  System.out.println(r2.where);
  System.out.println(r2.grade);
  System.out.println("---------------------------------");
  h();
  System.out.println(sex);
 }
}

5.构造器 构造方法 构造函数——构造对象的时候用的方法
 
  构造方法是定义在 Java 类中的一个用来初始化对象的方法。
对象的成员变量。
 
构造方法与类同名且没有返回值。
 
使用 new + 构造方法 创建一个新的对象。
 
当没有指定构造方法时,编译器为类自动添加无参的构造方法。
如果已有,编译器就不再添加了。  构造器可

以重载
 class Student
{
 /*Student(String s){
 System.out.println("...");}
 Student(int i){
 System.out.println("...11");}
 Student(float f){
 System.out.println("...22");}
 Student(long l){
 System.out.println("...33");}*/
 Student(){
 System.out.println("...44");}
 

 public static void main(String[] args)
 {
  Student t1=new Student(11111111);
  //Student t2=new Student(1.2f); 
  /*---------- 编译 ----------
  错误: 无法将类 Student中的构造器 Student应用到给定类型;
  Student t1=new Student(11111111);
             ^
  需要: 没有参数
  找到: int
  原因: 实际参数列表和形式参数列表长度不同*/
  //Student t3=new Student();


  }
}

6.this 当前对象,只能写在实例的方法内
  this. 访问,调用类的属性和方法
  this();转发构造器,写在构造器第一行
class Studen
{
 String age;
 Studen(String age){
 this(12);//this()转发构造器,必须写在第一行
 this.age=age;//this.访问/调用类的属性和方法;this只能用在实例/对象的方法内
 System.out.println("hihi");}
 
 Studen(int i){
 this(12.3);
 System.out.println("hihihihi");}
 
 Studen(double d){
 //this("1");//递归构造器调用,报错
 System.out.println("hihi123");}
 public static void main(String[] args)
 {

  Studen s=new Studen("123466");
 }
}

7.static{}  //静态块
class Cat
{
 static int charc=100;
 final String TYPE="123";
 static{
 charc=1000;
 System.out.println("Scor1");}
 static{
 System.out.println("Scor2");
 name="ll";}
 static String name;
 static{
 System.out.println("Scor3");}
 static{
 System.out.println("Scor4");}
 public static void main(String[] args)
 {
  
  System.out.println("Hello World!");
 }
}

8.类的管理类Class:Class.forName("");
class Pig
{
 
 public static void main(String[] args) throws Exception
 {
  //System.out.println(Cat.TYPE);//无法从静态上下文中引用非静态变量TYPE;TYPE为常量
  //System.out.println(Cat.name);
  Class.forName("Cat");
 }
}

9.常量声明:只能声明一次,名称大写
  1)final String ADDRESS="aa";
  2)final String ADDRESS;
    ADDRESS="aa";

  final定义类表示类不可以被继承;
  定义方法不可以被重载;
  定义变量表示变量值不可以被改变。


0 0
原创粉丝点击