(1) 明白建立类,和调用对象;
package hello;//建立应该叫hello的包 下面所有的类都是该包的一部分
//尽量不要创建以Java和javax开头的包
public class Hello{ //创建一个类叫做Hello
public int age; //属性
public double salary;//属性
//功能
public Hello(int agevalue,double salaryValue) {
age = agevalue;
salary = salaryValue;
}
void key() {
System.out.println("world");
}
public static void main(String[] args) {
Hello a =new Hello(20,70);//建立一个对象
a.key();//调用这个对象的功能
System.out.println(a.age);//调用这个对象的值/属性
}
}
(2)为对象内存分配的3种情况
1建立了两个对象,分配两个内存
Hello a =new Hello(20,70);//建立一个对象
Hello b =new Hello(40,40);
2:单个对象可以被多个引用变量引用 //感觉有点像指针
Hello a =new Hello(20,70);//建立一个对象
Hello b =a;
a.key();//调用这个对象的功能
b.key();//b也可以调用对象a的功能
System.out.println(b.age);//b也可以调用这个对象的值/属性
3:一个类包含另一个类
package hello;
public class Hello{ //创建一个类叫做Hello
public class Address{
int age=10;
void welcome() {
System.out.println("Hello");
}
}
Address address = new Address();
public static void main(String[] args) {
Hello a =new Hello();//建立一个对象
System.out.println(a.address.age);//可以通过父类对象调用子类对象的值/属性
a.address.welcome();//同理也可以调用子类的功能
}
}
(3)静态变量
package hello;
public class Hello{ //创建一个类叫做Hello
static int length=10;//静态字段可以不创建对象的情况下直接调用
int width;
static void good() { //也包括静态功能,也可以理解成直接创建了一个可以随时调用的函数
System.out.println("hello");//其中System.out.println本质上也是一个静态功能因为它
//没有创建对象就可以直接调用
}
public static void main(String[] args) {
good();//没有创建对象Hello的情况下,直接调用
System.out.println(length);//直接调用length:10
}
}
(4)功能重载(功能重名使用方法)
package hello;
public class Hello{ //创建一个类叫做Hello
static void good(int emm) { //注:是使用了静态功能
if(emm==1) System.out.println("hello");
}
static void good(char emm) {//功能可以重名只要改变输入变量就可以
if(emm=='a') System.out.println("hello");
}
public static void main(String[] args) {
good(1);//注意功能同名时传入变量的类型
good('a');
}
}
(4)引用传递的功能(类似c语言用指针传递变量本身)
package hello;
class Point {//创建一个类叫做Point
public int x;
public int y;
}
public class Hello{ //创建一个类叫做Hello
public static void reset(Point point ) {//相当于做了一个Point point=a;然后共用一
//块内存,具体可以看对象内存的3种分配。
point.x=0;//对相同内存里的x进行清零
point.y=0;//对相同内存里的y进行清零
}
public static void main(String[] args) {
Point a =new Point();//
a.x=200;
a.y=400;
reset(a);//将对象a传递给功能reset
System.out.println(a.x);//0
System.out.println(a.y);//0
}
}
(5)程序的初始化
package hello;
public class Hello{ //创建一个类叫做Hello
int x=3;
int y;
public Hello() {
y = x*3;
System.out.println(y);
}
static {//首先会执行静态初始化
System.out.println("Hello");
}
public static void main(String[] args) {//main也相当于静态初始化
Hello a = new Hello();//当创建新对象时才会执行实例初始化
Hello b = new Hello();
}
}
console
Hello
9
9



