目标开发一款自己喜欢且能最大限度让用户参与建设的社交软件。
笔记:
对象的内存布局:
(堆里面的数据才是真正的对象,栈里面的只不过是一个代号或者名字(对象引用)而已)
属性/成员变量
1、从概念或叫法上看:成员变量 = 属性 = Field(字段)
2、属性是类的一个组成部分,一般是基本数据类型,也可是引用类型(对象,数组)
注意事项和细节说明:
1)属性的定义语法同变量,示例:访问修饰符(public protected 默认 private)、属性类型、属性名
2)属性的定义类型可以为任意类型,包含基本类型和引用类型
3)属性如果不赋值。有默认值,规则和数组一致。
如何创建对象:
1、先声明再创建;
Cat cat;
cat = new Cat();
2、直接创建
Cat cat = new Cat();
如何访问属性
基本语法是 : 对象名.属性名
cat.name;
cat.age;
cat.color;
类和对象的内存分配机制(重要)
java创建对象的流程简单分析
1、先加载Person类信息(属性和方法信息,只会加载一次)
2、在堆中分配空间,进行默认初始化(看规则)
3、把地址赋给P(即指向对象)
4、进行指定初始化,比如 p.name = " jack ''
b = null 代表b被清除;
成员方法
在某些情况下,我们需要定义成员方法(简称方法)。比如人类:除了有一些属性外(年龄、姓名……),我们人类还要一些行为比如:可以说话、跑步...,通弄过学习,还可以做算术题。这时我们要用成员方法才能完成。
1)
1、public 表示方法是公开的
2、void 表示方法没有返回值
3、speak( ) speak表示方法名;( ) 形参列表
4、{ } 方法体,可以写我们要执行的代码
5、System.out.println 表示我们的方法就是输出一句话
public class Method {
public static void main(String[] args) {
Person p = new Person();
p.speak();//方法不调用的话就不会被使用
}
}
class Person {
String name;
int age;
public void speak() {
System.out.println("i am a good man");
}
}
2)
public class Method {
public static void main(String[] args) {
Person p = new Person();
p.speak();
p.cal01();
}
}
class Person {
String name;
int age;
public void speak() {
System.out.println("i am a good man");
}
public void cal01() {
int sum = 0;
for (int i = 1; i <= 1000; i++) {
sum += i;
}
System.out.println("sum=" + sum);
}
}
3)
public class Method {
public static void main(String[] args) {
Person p = new Person();
p.speak();
p.cal01();
p.cal02(5);//调用cal02方法同时赋值
p.cal02(10);//调用cal02方法同时赋值
}
}
class Person {
String name;
int age;
public void speak() {
System.out.println("i am a good man");
}
public void cal01() {
int sum = 0;
for (int i = 1; i <= 1000; i++) {
sum += i;
}
System.out.println("sum=" + sum);
}
public void cal02(int n) { //(int n)形参列表,表示当前有一个形参n,可以接受用户输入
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
System.out.println("sum=" + sum);
}
}
4)
1、public 表示方法是公开的
2、int 表示方法执行后,返回一个int 值
3、getSum 方法名
4、int num1, int num2 形参列表,2个形参,可以传入用户传入的两个数
5、return res 表示把res 值,返回
public class Method {
public static void main(String[] args) {
Person p = new Person();
p.speak();
p.cal01();
p.cal02(5);
p.cal02(10);
int returnRes = p.getSum(10, 20);
System.out.println("returnRes=" + returnRes);
}
}
class Person {
String name;
int age;
public void speak() {
System.out.println("i am a good man");
}
public void cal01() {
int sum = 0;
for (int i = 1; i <= 1000; i++) {
sum += i;
}
System.out.println("sum=" + sum);
}
public void cal02(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
System.out.println("sum=" + sum);
}
public int getSum(int num1, int num2) {
int res = num1 + num2;
return res;
}
}