补充:
传统的for循环语句是用下标去跑,foreach是直接跑元素,所以定义x类型要与数组或其他对象一样。
1.面向对象:
面向对象编译的思想来源于生活,一切皆对象,
要描述这个世界上任何一个对象都可以通过静态属性和动态属性描述。
静态属性:是私有的(private xx xx)不能直接赋值,静态属性可以理解为成员变量
动态属性:动态属性可以理解为方法/函数
2.定义一个类就等于定义一种新的数据类型。
3.一个类就一个具体对象实例模板
4.面向对象的三大特性:封装,继承,多态
构造函数:与类同名,没有返回值。
(当没有自定义构造函数时,系统会自动创建一个无参数的构造函数
但是一旦自定义了有参数的构造函数系统将不再自动创建无参数的构造函数。
所以在以后的开发中建议大家只要写有参数的构造函数都必须写无参数的构造函数)
class JavaDemo211
{
public static void main(String[] args){
pig p1 = new pig();
}
}
class pig
{
private String name;
private String pingzhong;
private String age;
public pig(){
System.out.println("猪猪侠");
}
}
//无参数结构函数
//无参数构造函数
class JavaDemo212
{
public static void main(String[] args)
{
Person p2 = new Person("黑色的猪","男",18);
p2.out();
Person p3 = new Person("红色的猪","女",18);
p3.out();
}
}
class Person
{
private String name;//一旦成员变量拥有了Set和get就变成了属性
private String gender;
private int age;
public Person(String name,String gender,int age){
//this指的是当前实例对象
this.name = name;
this.gender = gender;
this.age = age;
}
public void out(){
System.out.println(this.name+","+this.gender+","+this.age);
}
}
//有参数构造函数
//get与set(一旦成员变量拥有了set和个get就变成了属性)
class JavaDemo213
{
public static void main(String[] args)
{
Person p1 = new Person();
p1.setName("李XX");
p1.setGender("女");
System.out.println(p1.getName()+","+p1.getGender());
}
}
class Person
{
private String name;//一旦成员变量拥有了Set和get就变成了属性
private String gender;
private int age;
//get(取出成员变量的值) 和set方法(给成员变量赋值)
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setGender(String gender){
this.gender = gender;
}
public String getGender(){
return this.gender;
}
public void out(){
System.out.println(this.name+","+this.gender+","+this.age);
}
}